# -*- coding: utf-8 -*-
# @Author : Hami



import jsonpath
import pytest
# TODO 扩展 ：导入对应的关键字文件并且实例化对象
from extend.keywords import Keywords
keywords = Keywords()

@pytest.fixture(scope="session")
def token_fix():
    # 案例一：登录接口
    # TODO 1: 确定请求数据，发送请求
    url = "http://shop-xo.hctestedu.com/index.php?s=api/user/login"
    public_data = {"application": "app", "application_client_type": "weixin"}
    data = {"accounts": "hami", "pwd": "123456", "type": "username"}
    # res = requests.post(url=url, params=public_data,json=data)
    # TODO 扩展 ：拼接数据进行传递
    request_data = {"url": url, "params": public_data, "json": data}
    res = keywords.request_post(**request_data)

    # TODO 2: 获取响应数据进行断言,注意返回的是一个列表
    msg_results = jsonpath.jsonpath(res.json(), "$..msg")[0]

    # TODO 3: 进行断言处理
    assert msg_results == "登录成功", f"断言失败,实际结果为{msg_results}"

    # TODO 4: 获取token数据, 注意返回的是一个列表
    token = jsonpath.jsonpath(res.json(), "$..token")[0]
    print(f"获取到的token值为：{token}")
    return token

